
TARGET = photo  #生成的可执行文件名

CC = arm-linux-gcc  #指定编译工具
CFLAGS = -g -Wall   #指定编译选项

#========只需要改变下面的路径和所依赖的库文件即可=========
#源文件路径（路径后面不能有空格）
SRC_DIR = ./src
#头文件路径
INC_DIR = ./include
#库文件路径
LIB_DIR = ./lib 
#存放中间文件的目录和可执行文件
BUILD_DIR = ./build

LDLIBS += -lpthread  -lpthread#链接库文件-lfont -lm 

LDFLAGS = -I$(INC_DIR) -L$(LIB_DIR) #链接头文件路径和库文件路径

INC_PATH = $(addprefix -I,$(INC_DIR))  #-I$(INC_DIR)
LIB_PATH = $(addprefix -L,$(LIB_DIR))  #-L$(LIB_DIR)

SRC = $(wildcard $(SRC_DIR)/*.c) # ./src/*.c
OBJ = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SRC))   #将所有的.c替换为.o文件
#OBJ = $(SRC:.c=.o)                 #将所有的.c替换为.o文件

all: $(BUILD_DIR)/$(TARGET)
    
$(BUILD_DIR)/$(TARGET):$(OBJ)
	@mkdir -p $(@D)
	gcc -o $(BUILD_DIR)/$(TARGET) $(OBJ) $(INC_PATH) $(LIB_PATH) $(LDLIBS) 

$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
	@mkdir -p $(@D)
	gcc -o $@ $<  -c -I$(INC_DIR)

clean:
	rm -rf $(BUILD_DIR)

.PHONY:all clean  #声明clean是伪目标